package e_Executors;


import java.util.concurrent.*;

/**
 * @author Cheng-02
 * @version V1.0
 * @Package e_Executors
 * @date 2024/4/7 下午8:49
 */

/**
 * 测试MyExecutors类，演示如何使用ExecutorService和Runnable接口来执行任务。
 */
public class MyExecutorsTest {
    /**
     * 程序的主入口函数。
     *
     * @param args 命令行参数（未使用）
     */
    public static void main(String[] args) {
        // 创建一个MyRunnable实例
        MyRunnable myRunnable = new MyRunnable();

        // 创建一个固定大小的线程池，最多同时执行3个任务
        ExecutorService executorService = Executors.newFixedThreadPool(3);

        // 向线程池提交3个任务
        executorService.submit(myRunnable);
        executorService.submit(myRunnable);
        Future<Integer> future = executorService.submit(new MyCallable());
        try {
            System.out.println(future.get());
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        } catch (ExecutionException e) {
            throw new RuntimeException(e);
        }

        // 关闭线程池，等待所有任务完成

    }
}

/**
 * 实现Runnable接口的类，用于定义要在线程中执行的任务。
 */
class MyRunnable implements Runnable {
    /**
     * 重写的run方法，定义了任务要执行的逻辑。
     */
    public void run() {
        System.out.println("MyRunnable");
    }
}

class MyCallable implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        return 0;
    }
}

